package com.asiainfo.ncrm.util;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

import android.content.Context;
import android.util.Log;

public class X {

	/** 默认标签 */
	public static final String DEFAULT_TAG = "Todo";
	private final static int VERBOSE = 0;
	private final static int DEBUG = 1;
	private final static int INFO = 2;
	private final static int WARN = 3;
	private final static int ERROR = 4;
	@SuppressWarnings("unused")
	private final static int NOTHING = 5;
	private static int level = VERBOSE;
	private static boolean isWrite = false;

	/**
	 * 获取当前时间
	 * 
	 * @return
	 */
	private static String getCurTime() {
		return new SimpleDateFormat("yyyy-MM-dd hh:mm:ss SSS", Locale.getDefault()).format(new Date());
	}

	private static void saveLog(String content) {
		FileUtil.writeTxT(FileUtil.LOCAL_PATH + "/log", content);
	}

	/**
	 * verbose日志
	 * 
	 * @param tag
	 * @param msg
	 */
	public static void v(String tag, Object msg) {
		if (level <= VERBOSE) {
			String message;
			if (null != msg) {
				message = msg.toString();
			} else {
				message = "打印内容为空！";
			}
			message += "\n|打印时间-->>" + getCurTime();
			Log.v(tag, message);
			if (isWrite) {
				saveLog("v   " + "|" + DEFAULT_TAG + "|-->>" +tag + "     " + message);
			}
		}
	}

	/**
	 * verbose日志
	 * 
	 * @param context
	 * @param msg
	 */
	public static void v(Context context, Object msg) {
		v(context.getClass().getSimpleName(), msg);
	}

	/**
	 * debug日志
	 * 
	 * @param tag
	 * @param msg
	 */
	public static void d(String tag, Object msg) {
		if (level <= DEBUG) {
			String message;
			if (null != msg) {
				message = msg.toString();
			} else {
				message = "打印内容为空！";
			}
			message += "\n|打印时间-->>" + getCurTime();
			Log.d(tag, message);
			if (isWrite) {
				saveLog("d   " + "|" + DEFAULT_TAG + "|-->>" +tag + "     " + message);
			}
		}
	}

	/**
	 * debug日志
	 * 
	 * @param context
	 * @param msg
	 */
	public static void d(Context context, Object msg) {
		d(context.getClass().getSimpleName(), msg);
	}

	/**
	 * info日志
	 * 
	 * @param tag
	 * @param msg
	 */
	public static void i(String tag, Object msg) {
		if (level <= INFO) {
			String message;
			if (null != msg) {
				message = msg.toString();
			} else {
				message = "打印内容为空！";
			}
			message += "\n|打印时间-->>" + getCurTime();
			Log.i(tag, message);
			if (isWrite) {
				saveLog("i   " + "|" + DEFAULT_TAG + "|-->>" +tag + "     " + message);
			}
		}
	}

	/**
	 * info日志
	 * 
	 * @param context
	 * @param msg
	 */
	public static void i(Context context, Object msg) {
		i(context.getClass().getSimpleName(), msg);
	}
	

	/**
	 * warn日志
	 * 
	 * @param tag
	 * @param msg
	 */
	public static void w(String tag, Object msg) {
		if (level <= WARN) {
			String message;
			if (null != msg) {
				message = msg.toString();
			} else {
				message = "打印内容为空！";
			}
			message += "\n|打印时间-->>" + getCurTime();
			Log.w(tag, message);
			if (isWrite) {
				saveLog("w   " + "|" + DEFAULT_TAG + "|-->>" +tag + "     " + message);
			}
		}
	}

	/**
	 * warn日志
	 * 
	 * @param context
	 * @param msg
	 */
	public static void w(Context context, Object msg) {
		w(context.getClass().getSimpleName(), msg);
	}

	/**
	 * error日志
	 * 
	 * @param tag
	 * @param msg
	 */
	public static void e(String tag, Object msg) {
		if (level <= ERROR) {
			String message;
			if (null != msg) {
				message = msg.toString();
			} else {
				message = "打印内容为空！";
			}
			message += "\n|打印时间-->>" + getCurTime();
			Log.e(tag, message);
			if (isWrite) {
				saveLog("e   " + "|" + DEFAULT_TAG + "|-->>" +tag + "     " + message);
			}
		}
	}

	/**
	 * error日志
	 * 
	 * @param context
	 * @param msg
	 */
	public static void e(Context context, Object msg) {
		e(context.getClass().getSimpleName(), msg);
	}

}
